home *** CD-ROM | disk | FTP | other *** search
- """Findmodulefiles - Find out where modules are loaded from.
- Run findmodulefiles() after running a program with "python -i. The
- resulting file list can be given to mkfrozenresources or to a
- (non-existent) freeze-like application."""
-
- def findmodulefiles(output=None):
- """Produce a file containing a list of (modulename, filename-or-None)
- tuples mapping module names to source files"""
- # Immedeately grab the names
- import sys
- module_names = sys.modules.keys()[:]
- import os
- if not output:
- if os.name == 'mac':
- import macfs
-
- output, ok = macfs.StandardPutFile('Module file listing output:')
- if not ok: sys.exit(0)
- output = output.as_pathname()
- if not output:
- output = sys.stdout
- elif type(output) == type(''):
- output = open(output, 'w')
- output.write('[\n')
- for name in module_names:
- try:
- source = sys.modules[name].__file__
- except AttributeError:
- source = None
- else:
- source = `source`
- output.write('\t(%s,\t%s),\n' % (`name`, source))
- output.write(']\n')
- del output
-
- def findunusedbuiltins(list):
- """Produce (on stdout) a list of unused builtin modules"""
- import sys
- dict = {}
- for name, location in list:
- if location == None:
- dict[name] = 1
- for name in sys.builtin_module_names:
- if not dict.has_key(name):
- print 'Unused builtin module:', name
-
-
- def mkpycresourcefile(list, main='', dst=None):
- """Copy list-of-modules to resource file dst."""
- import py_resource
- import Res
- import sys
-
- if dst == None:
- import macfs
- fss, ok = macfs.StandardPutFile("PYC Resource output file")
- if not ok: sys.exit(0)
- dst = fss.as_pathname()
- if main == '':
- import macfs
- fss, ok = macfs.PromptGetFile("Main program:", "TEXT")
- if ok:
- main = fss.as_pathname()
-
- fsid = py_resource.create(dst)
-
- if main:
- id, name = py_resource.frompyfile(main, '__main__')
- print '%5d\t%s\t%s'%(id, name, main)
- for name, location in list:
- if not location: continue
- if location[-3:] != '.py':
- print '*** skipping', location
- continue
- id, name = py_resource.frompyfile(location, name)
- print '%5d\t%s\t%s'%(id, name, location)
-
- Res.CloseResFile(fsid)
-
-
-